package com.itcam.cli.command;


import cn.hutool.core.util.ReflectUtil;
import com.itcam.model.MainTemplateConfig;
import picocli.CommandLine.Command;

import java.lang.reflect.Field;

/**
 * @author : Cammy.Wu
 * Description : 查看允许用户传入的动态参数信息
 */

/**
 * 表示查看参数信息的命令类。
 * 该类实现了 Runnable 接口，用于执行查看参数信息的操作。
 */
@Command(name = "config", description = "查看参数信息", mixinStandardHelpOptions = true)
public class ConfigCommand implements Runnable {

    /**
     * 执行查看参数信息的操作。
     * 该方法打印出 `MainTemplateConfig` 类的所有字段的名称和类型。
     */
    @Override
    public void run() {
        // 实现config命令的逻辑
        System.out.println("查看参数信息");

        // 使用反射工具获取 MainTemplateConfig 类的所有字段
        Field[] fields = ReflectUtil.getFields(MainTemplateConfig.class);

        // 遍历并打印每个字段的信息
        for (Field field : fields) {
            // 打印字段名称
            System.out.println("字段名称：" + field.getName());
            // 打印字段类型
            System.out.println("字段类型：" + field.getType());
            // 打印字段修饰符
//            System.out.println("Modifiers:"+java.lang.reflect.Modifier.toString(field.getModifiers()));
            // 打印分隔线
            System.out.println("---");
        }
    }
}

